package com.example.webgobang.utils;

import org.springframework.util.DigestUtils;

import java.util.UUID;

/**
 * 盐值+明文 -> 密文
 * 盐值+待测明文 -> 待测密文
 * 待测密文===密文，校验成功
 */

public class SecurityUtils {
    // 加密
    public static String encrypt(String password) {
        // 生成32位随机盐值，以"-"随机分隔的字符串
        String salt = UUID.randomUUID().toString().replace("-", ""); //去掉"-"，伪装性更强
        String securityPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes()); //对盐值+明文加密
        return salt + securityPassword; //返回盐值+密文，存于数据库
    }

    // 校验
    public static boolean verify(String inputPassword, String sqlPassword) {
        if (sqlPassword == null || sqlPassword.length() != 64) {
            return false;
        }
        String salt = sqlPassword.substring(0, 32); //取出盐值
        String securityPassword = DigestUtils.md5DigestAsHex((salt + inputPassword).getBytes()); //得到待测密文
        return (salt + securityPassword).equals(sqlPassword);
    }
}
